(function($){
	/**
	 * 这是一个等待的全屏效果div，原本是设计支持跨框架的
	 * 现在由于css的分离，不知道如何在克隆元素的时候克隆外部css属性
	 * 所有跨框架有bug，不过当前页面是可以的
	 */
	//注册要使用的名字
	_globalObj({},"Wait");
	var _waitDiv=null;
	var _waitImg=null;
	var _clone_waitDiv=null;
	var _clone_waitImg=null;
	$(function(){_init();});
	function _init(){
		_waitDiv=document.createElement("DIV");
		_waitImg=document.createElement("DIV");
		$(_waitDiv).addClass("_wait_waitDiv");//加载css文件的属性
		$(_waitImg).addClass("_wait_waitImg");
		_clone_waitDiv=$(_waitDiv).clone();//克隆
		_clone_waitImg=$(_waitImg).clone();
	};
	function _show(top){
		_append(top);
		//当窗口大小改变的时候，需要重新缓冲背景div的长宽和稍后div的位置
		$(window).bind("resize",_wait_resize_fun=function(){_append(top);});
	}
	function _hide(){
		$(_clone_waitDiv).hide();
		$(_clone_waitImg).hide();
		$(window).unbind("resize",_wait_resize_fun);
	}
	
	function _append(f){
		$(_clone_waitDiv).hide();
		$(_clone_waitImg).hide();
		var p=_generateParams(f);
		$(_clone_waitDiv).css({
			width:p.bw+'px',
			height:p.bh+'px'
		});
		$(_clone_waitImg).css({
			"top":(p.uh-$(_clone_waitImg).height())/2+p.y+"px",
			"left":(p.uw-$(_clone_waitImg).width())/2+p.x+"px"
		});
		switch(f){
		case undefined://默认本框架
			$("body").append(_clone_waitDiv);
			$("body").append(_clone_waitImg);
			break;
		case "top"://顶级框架
			$("body",window.top.document).append(_clone_waitDiv);
			$("body",window.top.document).append(_clone_waitImg);
			break;
		default:
			
		}
		$(_clone_waitDiv).show();
		$(_clone_waitImg).show();
	}
	
	
	
	
	/**
	 * 
	 * 这是一个对全局window进行obj赋值的方法，实现了跨框架的问题，通用
	 */
	function _globalObj(obj,objName){
		var now=window.self;//当前页面window
		while(true){
			now[objName]=obj;//对window赋值某个对象
			if(now===window.parent){break;}
			else{now=window.parent;}
		}
	}
	
	
	
	/**
	 * 一个产生部分屏幕参数的方法（通用）
	 */
	function _generateParams(f){
		var p={};
		switch(f){
		case undefined://默认本框架
			p.uw=window.innerWidth//可用宽
			|| document.documentElement.clientWidth
			|| document.body.clientWidth||0;

			p.uh=window.innerHeight//可用高
			|| document.documentElement.clientHeight
			|| document.body.clientHeight||0;
			p.y=window.scrollY ||document.body.scrollTop||document.documentElement.scrollTop||0;//垂直方向
			p.x=window.scrollX ||document.body.scrollLeft||document.documentElement.scrollLeft||0;//水平方向
			p.bw=window.document.body.scrollWidth|| window.document.documentElement.scrollWidth||0;//全文（body）可用宽
			p.bh=Math.max(window.document.body.scrollHeight||0,window.document.documentElement.scrollHeight||0);//全文（body）可用高
			break;
		case "top"://顶级框架
			p.uw=window.top.innerWidth//可用宽
			|| window.top.document.documentElement.clientWidth
			|| window.top.document.body.clientWidth||0;
			p.uh=window.innerHeight//可用高
			|| document.documentElement.clientHeight
			|| document.body.clientHeight||0;
			p.y=window.top.scrollY ||window.top.document.body.scrollTop||window.top.document.documentElement.scrollTop||0;//垂直方向
			p.x=window.top.scrollX ||window.top.document.body.scrollLeft||window.top.document.documentElement.scrollLeft||0;//水平方向
			p.bw=window.top.document.body.scrollWidth|| window.top.document.documentElement.scrollWidth||0;//全文（body）可用宽
			p.bh=Math.max(window.top.document.body.scrollHeight||0,window.top.document.documentElement.scrollHeight||0);//全文（body）可用高
			break;
		default:
			p.w=p.h=p.x=p.y=0;
		}
		return p;
	}
	
	
	
	
	
	
	
	
	
	
	/**
	 * *******************************************************API********************************************************
	 */
	/**
	 * 
	 */
	window.Wait.show=function(top){_show(top);}
	window.Wait.hide=function(){_hide();}
})(jQuery);